package hoja3;
/*6666666666666666666666666666666666666666666666666666666
 * 					colaArreglo
 * 
 * Escrito por: Ernesto Rodriguez
 * 
 * Descripcion: Esta clase es una implementacion de una
 * cola mediante arreglos
 6666666666666666666666666666666666666666666666666666666*/
public class colaArreglo <Type> extends implementacionCola <Type>{

	Type[] datos;
	
	/**Crea una nueva cola del tamano indicado
	 * 
	 * @param size tamano maximo de la cola
	 */
	public colaArreglo(int size){
		
		datos = (Type[]) new Object[size];
	}
	
	public void add(Type obj) {
		
		//boolean status=true;
		
		for (int veces=0; veces<datos.length; veces++)
			if (datos[veces]==null){
				datos[veces]=obj;
				return;
			}
		
		//if(status)
		throw new ArrayIndexOutOfBoundsException();
	}

	public Type next() {
		
		Type ret = datos[0];
		
		for (int veces=0; veces<datos.length-1; veces++)
			datos[veces]=datos[veces+1];
		
		datos[datos.length-1]=null;
		
		return ret;
	}

	public int size() {
		
		int tam = 0;
		//int veces = 0;
		
		while(tam<datos.length && datos[tam]!=null){
			tam++;
		}
		
		return tam;
	}

	public Type look() {
		
		return datos[0];
	}

}
